javascript中一维数组,转成树形数组

您所在的位置:网站首页 js 数组转list javascript中一维数组,转成树形数组

javascript中一维数组,转成树形数组

2023-07-11 08:31| 来源: 网络整理| 查看: 265

// 情况一:// pId 对应父级 id   let list= [     { pId: '-1', id: '0', name: '1' },     { pId: '0', id: '1', name: '1-1' },     { pId: '0', id: '2', name: '1-2' },     { pId: '2', id: '21', name: '1-2-1' },   ]     function getList(list) {     let result= {}     let data= {}     // 数组转 键值对     list.forEach(item => {       result[item.id] = item     })         let resultKeys = Object.keys(result)    resultKeys.forEach(key => {       // 获取当前项       let item = result[key]       // 当前项 pId       let temPId = item.pId       // 获取父级项       let ItemByPid = result[itemPId]       if (ItemByPid) {         if (!ItemByPid.children) {           ItemByPid.children = []         }        ItemByPid.children.push(item)       } else {         data[item.id] = item       }     })     // 对象转数组并返回     return Object.keys(data).map(key => data[key])   }

// 情况二: // 数据源 let list= [             {name_1: 'name_1...'},             {name_2: 'name_4...'},             {name_3: 'name_3...'},             {name_0: 'name_0...'},         ].reverse() // 最终想要的数据形式         // {name_1: 'name_1...',         //     children: [         //         {name_2: 'name_2...',         //             children: [         //                 {name_3: 'name_3...'},         //             ]         //         }         //     ]         // }           let result = {}         let  key ='children'         getList(list)           function getList(arrs) {             arrs.forEach((item, i) => {                 console.log('---'+ i + ': ', result)                 if (!result[key]) {                     result[key] = [item]                 } else {                     itemkey] = [result]                     result = item                 }              })         }           console.log(result)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3